package com.doubao.hardware.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * 硬件设备实体类
 */
@Data
@TableName("hardware_device")
public class HardwareDeviceEntity {

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 设备序列号 (使用MAC地址)
     */
    private String deviceSn;

    /**
     * 产品ID - 保持为String类型接收数据
     */
    private String productId;
    /**
     * 绑定用户ID，NULL表示未绑定
     */
    private Long userId;

    /**
     * 设备昵称
     */
    private String nickname;

    /**
     * 固件版本
     */
    private String firmwareVersion;

    /**
     * 当前绑定的智能体ID
     */
    private Long smartDeviceId;

    /**
     * IP地址
     */
    private String ipAddress;

    /**
     * MAC地址
     */
    private String macAddress;

    /**
     * 最后在线时间
     */
    private LocalDateTime lastOnlineTime;

    /**
     * 是否在线 1:是 0:否
     */
    private Integer isOnline;

    /**
     * 语音配置，JSON格式
     */
    private String voiceConfig;

    /**
     * 唤醒词，多个用逗号分隔
     */
    private String wakeWords;

    /**
     * 设备位置
     */
    private String location;

    /**
     * 状态 1:正常 0:异常
     */
    private Integer status;

    /**
     * 扩展信息JSON
     */
    private String extJson;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;
}